Interactive beam alignment with delayed feedback

ABSTRACT

Methods for transmitting data include sending a first probing packet using a first scanning beam, selected from a set of scanning beams. Feedback about the first probing packet is determined. A second probing packet is sent using a second scanning beam, selected from the set of scanning beams based on the determined feedback about the first probing packet. Feedback about the second probing packet is determined. A data transmission beam is determined based on the set of scanning beams and the received feedback about the first probing packet and the second probing packet. Data is transmitted using an antenna that is configured according to the determined transmission beam.

RELATED APPLICATION INFORMATION

This application claims priority to U.S. Provisional Patent Application No. 63/031,143, filed on May 28, 2020, U.S. Provisional Patent Application No. 63/062,542, filed on Aug. 7, 2020, and U.S. Provisional Patent Application No. 63/094,927, filed on Oct. 22, 2020, each incorporated herein by reference in its entirety.

This application is related to an application entitled “INTERACTIVE BEAM ALIGNMENT SYSTEM WITH DELAYED FEEDBACK,” having attorney docket number 20017B, and which is incorporated by reference herein in its entirety.

BACKGROUND Technical Field

The present invention relates to phased array antenna systems, and, more particularly, to adjusting the direction and with of a beam pattern using delayed feedback.

Description of the Related Art

To perform interactive beam alignment, a base station may receive feedback from a receiving station. This feedback may be used to precisely focus a beam pattern on the receiving station, making it possible to serve the receiving station even as it moves through space.

SUMMARY

A method for transmitting data includes sending a first probing packet using a first scanning beam, selected from a set of scanning beams. Feedback about the first probing packet is determined. A second probing packet is sent using a second scanning beam, selected from the set of scanning beams based on the determined feedback about the first probing packet. Feedback about the second probing packet is determined. A data transmission beam is determined based on the set of scanning beams and the received feedback about the first probing packet and the second probing packet. Data is transmitted using an antenna that is configured according to the determined transmission beam.

A method for transmitting data includes sending a plurality of probing packets using respective first scanning beams, selected from a set of scanning beams. Feedback about a first probing packet of the plurality of probing packets is determined after a non-zero delay interval has passed. A second probing packet is sent using a second scanning beam, selected from the set of scanning beams based on the determined feedback about the first probing packet. Feedback about the second probing packet and a remainder of the plurality of probing packets is determined. A data transmission beam is determined based on the set of scanning beams and the received feedback about the first probing packet, the second probing packet, and the remainder of the probing packets. A phased array antenna is configured according to the data transmission beam. Data is transmitted using the configured phased array antenna.

A method for transmitting data includes sending probing packets using respective first scanning beams, selected from a set of scanning beams. Feedback about a first probing packet of the probing packets is determined after a non-zero delay interval has passed by determining whether feedback has been received after the delay interval, setting a first bit responsive to a determination that a positive acknowledgement is received, and setting a second bit responsive to a determination that no acknowledgement is received. A second probing packet is sent using a second scanning beam, selected from the set of scanning beams based on the determined feedback about the first probing packet. Feedback about the second probing packet and a remainder of the probing packets is determined. A data transmission beam is determined based on the set of scanning beams and the received feedback about the first probing packet, the second probing packet, and the remainder of the probing packets. A phased array antenna is configured according to the data transmission beam. The set of scanning beams is configured based on prior knowledge about a communication channel between the phased array antenna and a receiving station. Data is transmitted using the configured phased array antenna.

These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:

FIG. 1 is a block diagram of a communications system that includes a base station, in communication with a receiver station, that uses beam steering to direct information to the receiver station, in accordance with an embodiment of the present invention;

FIG. 2 is a diagram illustrating a coherence interval timeline, illustrating a period of time in which probing packets are sent, a delay interval, and a data transmission interval, in accordance with an embodiment of the present invention;

FIG. 3 is a diagram illustrating a selection of scanning beams, in accordance with an embodiment of the present invention;

FIG. 4 is a block/flow diagram illustrating a method of selecting a data transmission beam in a system that includes delay in receiving feedback for probing packets, in accordance with an embodiment of the present invention;

FIG. 5 is a block/flow diagram of a method of performing beam alignment and data transmission during a coherence interval, in accordance with an embodiment of the present invention; and

FIG. 6 is a block diagram of a base station that performs beam alignment, with probing packets having an associated delay, in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In realistic scenarios, interactive beam alignment is performed in environments and with receiving stations where there is delay in delivering feedback. Feedback delay may be greater than one time slot, due to processing delays at the receiving station and the base station, propagation delays, and the structure of the communications protocol, whereby a receiving station may only be permitted to transmit during certain time slots. Performance can be substantially improved by accounting for these delays, for example by using the delay time productively to perform additional scanning.

Referring now to FIG. 1 , a transmission scenario is shown where a single base station 102 communicates with a single receiving station 104. The base station 102 has a phased array antenna system 101 that permits beam steering, while the receiving station 104 may have any appropriate antenna system, for example providing omnidirectional transmission and reception patterns. During beam alignment, the base station 102 attempts to minimize the width of an uncertainty region of a beam 106 that includes an angle of departure 108 for the receiving station 104, which may be measured relative to a normal angle of the phased array antenna system 101.

It may be assumed that the base station 102 is given a total of b packets for beam alignment, and assuming that the feedback for each transmitted beam alignment packet is received with a delay of d time slots. For example, feedback corresponding to the first beam alignment packet may be received at time slot 1+d. This formulation can accommodate both interactive (d=1) and non-interactive (d≥b) scenarios. The packets that are received by the receiving station 104 and their corresponding feedback at the base station 102 may be assumed to be error-free. Two cases for the scanning beams may be considered. In a first case, the base station 102 may use beams of any shape, while in the second case, the base station 102 is restricted to using only contiguous beams.

For contiguous scanning beams, the problem of finding optimal scanning beams can be divided into two sub-tasks: First, an optimal d-unimodal codebook may be determined, and then an optimal set of angular intervals may be determined. When combined with the codebook, the angular intervals provides an optimal set of scanning beams. The d-unimodal codebook provides fundamental results toward an optimal beam alignment process, and show that the number of possible data transmission beams should be maximized. A closed-form expression is provided below. Based on these analyses, the optimal scanning beams for the case of contiguous scanning beams, when d>1, provides contiguous uncertainty regions, which indicates that optimal data transmission beams are contiguous in these cases.

In the following examples, the base station 102 and the receiving station 104 may transmit using wavelengths in the millimeter scale, at exemplary frequencies between about 30 GHz and about 300 GHz. However, it should be understood that the present principles may include systems that transmit at any appropriate frequency. Additionally, although only a single base station 102 and a single receiving station 104 are discussed, for the sake of simplicity, it should be understood that any appropriate number of base stations 102 may be implemented in a given network, and that any appropriate number of receiving stations 104 may be associated with a given base station 102. Additionally, although only one angle of departure 108 is shown, it should be understood that multiple feasible angles may be available.

The phased array antenna system 101 may include an array of antenna elements, each of which may have a separate transmission path which provides selective amplification and phase shift for each of the antenna elements. By selecting a phase of each element, interference between the emissions of the elements can be selected to provide constructive interference along a beam path, and destructive interference along non-beam paths, thereby providing an effective amplification of the transmitted signal on the path that leads to the receiving station 104. In this manner, spatial multiplexing may be achieved, whereby independent channels may be transmitted to particular users, and interference with other used may be reduced.

The beam 106 may be modeled using a sectored antenna model that has a constant main-lobe gain and an angular coverage region that is the union of the angular intervals covered by the main lob. The impact of side-lobes may be ignored. Other models may be used for practical scenarios, where the beam pattern roll-off is not sharp.

Referring now to FIG. 2 , a time-slotted transmission system 200 is shown, having coherence intervals 202 that include T time slots t. The receiving station 104 may be stationary during each coherence interval 202. The coherence interval 202 may include three phases, including a probing phase 204, a waiting phase 206, and a transmission phase 208.

During the probing phase 204, the base station 102 may use b time slots to scan the angular space by sending probing packets in different directions. The order in which directions may be probed can be affected by feedback to previous probing packs, in previous coherence intervals 202. For example, if the receiving station 104 was located at an angle of departure 108 of Ψ in a previous coherence interval, then the base station 102 may start by probing angles Ψ±α, where α is a small angular range around the previous angle of departure 108.

Thus, the base station 102 may send probing packets at times t={1, . . . , b}. Upon receipt of each probing packet, the receiving station 104 may send a feedback packet. The feedback packet may include information, such as an identifying serial number and a received signal strength. This feedback packet is then received at the base station 102, after a delay of up to d time steps, for example due to processing delays that may be incurred at the base station 102 and at the receiving station 104. For the sake of simplicity, it may be assumed that the delay is fixed at d time steps. When there is no prior knowledge of the delay d, or if the value varies, an upper bound may be set for d, and scanning beams may then be designed based on the upper bound. However, this may result in sub-optimal scanning. In the case where there is no separate feedback channel, the base station 102 may need to switch back to a previous scanning beam to listen to the channel and to receive feedback corresponding to that scanning beam.

During the waiting phase 206, the base station 102 waits for d time slots to get the feedback on all of the probing packets. These d timeslots may be used for data transmission to any receiving stations 104 for which beam alignment has been previously performed, or can be used for other purposes, such as broadcasting, multicasting, or any other type of transmission. After receiving user feedback for the last probing packet—or determining that no such feedback has been received within the d timeslots, the base station 102 may process the feedback sequence and tailor the beam 106 to the used during the T—b—d timeslots of the transmission phase 208. These steps may then be repeated during a next coherence interval 202.

Non-interactive beam alignment is a special case of this process, where d≥b. In this case, the receiving station 104 does not respond to any of the probing packets during the probing phase 204, which means that the base station performs the scans without the benefit of feedback. In the case of d=1, feedback is received after one timeslot, for example the next timeslot after sending the probing packet.

Letting W be the angle of departure 108 of the spatial cluster of the channel from the base station 102 to the receiving station 104, an probability distribution function ƒ_(Ψ)(ψ) may be determined, where ψ is an angle from normal of the phased array antenna system 101. This distribution reflects the prior knowledge about the angle of departure 108, which may correspond to a previously localized angle of departure.

Given b, d, and ƒ_(Ψ)(ψ), the width of the uncertainty region for the angle of departure 108 may be minimized. This is directly impacted by the scanning policy that is used for the probing period 204. A probing beam selection policy may be defined as a mapping which, given a scanning beam set

, selects a scanning beam based on received feedback sequence to transmit the next beam alignment packet. A hierarchical scanning beam set may be defined as

={

_(i)}_(i∈[b]), and may be designed based on the distribution of random variable Ψ to represent the receiving station's angle of departure 108, the number of beam alignment packets b, and the delay d. The probing beam selection policy at the i^(th) timeslot selects one of the scanning beams in the set

_(i). If i≤d, then no feedback has been received and M_(i)=1. If i>d, there are multiple possibilities for the received feedback sequence, and so M_(i)>1. The number of possible probing beams at each level M_(i)=|

_(i)| may be determined based on the number of feasible feedback vectors received at the i^(th) timeslot, and is bounded by 2^(i).

The base station 102 chooses a data transmission beam, denoted by beam(a,

), which is a function of the feedback a and the set of probing beams

. The function captures different beam alignment strategies and is therefore a beam design policy function, returning uncertainty regions which include the angle of departure 108 of the receiving station 104. The set of all possible data transmission beams is denoted as

={u_(k)}_(k∈[K]), where K is the size of the set of all possible transmission beams.

The scanning beams used to transmit the b beam alignment packets may be denoted as Φ^((i)), where i∈[b]. When the channel of a user has a single dominant path, the beam design policy function that minimizes the angular uncertainty region of the angle of departure is given by: beam(a,

)=∩_(i=1) ^(b)Θ_(i)(a,

)∩supp(Ψ) where Θ_(i)(a,

)=Φ^((i)) if ψ∈Φ^((i)) (e.g., if the i^(th) bit of a is set), and Θ_(i)(a,

)=(0,2π|−Φ^((i)) otherwise, and where supp(Ψ) is a support function.

In this formulation, where there is only a single dominant path, there is a single angle of departure 108 that is associated with the receiving station 104, such that a positive feedback for the beam Φ^((i)) means that the angle of departure 108 is inside the beam, and a negative feedback means that the angle of departure 108 is in the beam's complement, which is (0,2π|−Φ^((i)).

Given the set of possible data transmission beams

, the expected width of the calculated uncertainty regions of the receiving station 104 may be expressed based on the policy function as:

$\begin{matrix} {{\overset{\_}{U}{()}} = {{\mathbb{E}}\left\lbrack {{{beam}\left( {a,} \right)}} \right\rbrack}} \\ {= {\sum\limits_{k = 1}^{K}{{u_{k}}{\int_{\psi \in u_{k}}{{f_{\Psi}(\psi)}d\;\psi}}}}} \end{matrix}$ where u_(k)=beam(a,

) for ψ∈u_(k) and the expectation is taken over by the distribution ƒ_(Ψ)(ψ). The notation |u_(k)| may be the Lebesgue measure of u_(k), which may correspond to the total width of the intervals in cases where u_(k) is the union of a finite number of intervals. The dependence of Ū on

comes from the expectation, which is a function of the set of data transmission beams

.

The codebook S may be designed given the number of beam alignment packets b, the delay d, and the prior angle of departure information ƒ_(Ψ)(·) to minimize the expected width of a data transmission beam. The design of the codebook may be described as the solution of the following optimization problem:

$\left\{ S_{i}^{*} \right\}_{i \in {\lbrack b\rbrack}} = {S^{*} = {\arg\mspace{11mu}\;{\overset{\_}{U}{()}}}}$ with Ū*=Ū({

_(i)*}_(i∈[b])). The optimal scanning beams from this optimization problem are the ones that can generate a partition

such that |u_(k)|≥0.

For non-contiguous beams, also known as composite beams, then b composite scanning beams can be found, such that there are 2^(b) data transmission beams. Performance in such a case is independent from the value of d. In addition, using a set of scanning beams designed for a case where d>b, the beam set can be used for any values of d to achieve the same performance. Therefore, optimal performance can be obtained using any value for d.

For contiguous beams, the angular region (0,2π| can be partitioned into a set of contiguous intervals. The beam can be specified by a binary set, where a j^(th) bit indicates whether or not the j^(th) interval in the partition is included in the beam. If a beam is contiguous, its corresponding binary set would have a specific realization, which can be categorized using unimodal sets.

As used herein, a binary loop is a cyclic ordered set of binary elements. A binary loop may be unimodal if there is only one position where the value of an element in this position is less than or greater than the value of the immediately preceding element. Given a delay d, an extension to this definition can be used. A binary codebook C(b, d) with codewords of length b is d-unimodal if there exists a characteristic loop with the following properties: 1. It includes all elements of the codebook, possibly with repetition, in a particular cyclic order; 2. For any i such that i≤d, the loop created by the i^(th) bits of the codewords in the characteristic loop is unimodal; and 3. For any i such that i>d, if one creates cyclic subsets of the characteristic loop by grouping the elements with same prefix of length i−d while preserving the original cyclic order in the characteristic loop, the elements in the i^(th) position of the codewords in each subset create a unimodal binary loop. The code size is then the number of codewords in C, denoted by |C|.

A characteristic loop of a codeword is not unique and may contain repetition of the same codewords. For example, repetition of the same codeword consecutively always generated another characteristic loop. Hence, a minimal characteristic loop may be defined as one which does not contain any consecutive repetitions. Yet, a minimal characteristic loop may still contain repetitions that are not consecutive. For example, the codebook C={11,01,10}, with the characteristic loop

=⊙{11,01,11,10}, which is minimal but contains repetition. The notation ⊙ is used herein to indicate a loop.

Since each beam in a probing beam codebook

, having N probing beams, is contiguous, it can be determined using two angles. The partition of (0,2π| created by these angles may be denoted as the set

=

, where the intervals are positioned such that the endpoint of each interval is the starting point of the next. This condition imposes cyclic order on the set

and makes sure it is a loop.

Each of these intervals has a corresponding feedback sequence, and there may exist multiple intervals with the same feedback sequence. It is also possible that some intervals may be trivial and have zero length. By removing the trivial intervals, and then replacing each element of the set

with its corresponding feedback sequence, the resulting loop is a characteristic loop of a d unimodal codebook. Moreover, given a minimal characteristic loop

and an angular interval set

of the same cardinality, one can use the following construction to form a hierarchical probing beam codebook

having feedback sequences from the d-unimodal codebook with the minimal characteristic loop

.

Given a minimal characteristic loop

, and a contiguous angular interval set

of the same cardinality, a hierarchical probing beam set

={

_(i)}_(i∈[b]) may be constructed as follows. For i≤d, a binary loop may be formed by considering the i^(th) element of the codewords in the characteristic loop, the set

_(i) including one scanning beam, which is the union of the intervals in

having a corresponding 1 bit in the formed binary loop. For i>d, the characteristic loop is divided into subsets of codewords that have the same prefix of length i−d. Given that there are M_(i) such subsets, the set

_(i) would include M_(i) probing beams, one for each possible feedback sequence of length i−d. To find a probing beam that corresponds to a subset, a binary sequence from the i^(th) element of the codewords in that subset is formed. Then, the probing beam may be the union of all the intervals in

that have an equivalent bit of 1 in the sequence, or that fall in between these intervals.

Referring now to FIG. 3 , an example is shown for scanning beams where b=3 and d=4. A first set 302 shows a set of overlapping beams Φ₁, Φ₂, and Φ₃. Notably, the first beam Φ₁ splits the set 302 in half. Thus, a response to a packet sent on Φ₁ leads to consideration of a second set of options 304, where a positive feedback may indicate that the receiving station 104 is within the upper half of the beam options and a negative feedback may indicate that the receiving station 104 is within the lower half of the beam options. Based on this feedback, the second set 304 identifies additional beams Φ₄ and Φ₅. The third view 306 shows a set of different beam intervals I, where the beams Φ are made up of unions of different beam intervals. For example: Φ₁ =∪{I ₁ ,I ₂ ,I ₃ ,I ₄ ,I ₅} Φ₂ =∪{I ₈ ,I ₉ ,I ₁₀ ,I ₁} Φ₃ =∪{I ₅ ,I ₆ ,I ₇ ,I ₈ ,I ₉} Φ₄ =I ₃ Φ₅ =∪{I ₇ ,I ₈}

There exists a one-to-one correspondence between any given

and d-unimodal codebooks C and between the corresponding regions

and the minimal characteristic length

. In this example,

={

₁,

₂,

₃,

₄}, where

={

_(i)}_(i∈[4]) for i∈{1,2,3} and

₄={Φ₄, Φ₅}. Also,

{U_(j)}_(j=1) ⁹, where U_(j)=I_(j) for j∈[10]\2 and U₂=∪{I₂, I₄}. The corresponding minimal characteristic loop

is then

=⊙{1100,1000,1001,1000,1010,0010,0011,0111,0110,0100}. The minimal characteristic loop has repetition of the codeword 1000, which corresponds to non-contiguous uncertainty region U₂.

Sets

₁,

₂, and

₃ are trivial. To form

₄,

may be divided into subsets of coderwords with the same prefix of length 1, which leads to sets ⊙ {1100,1000,1001,1000,1010} and ⊙ {0010,0011,0111,0110,0100}. From the first set, at position i=4, only the third codeword has a 1. Therefore, Φ₄=I₄. Similarly, Φ₅=I₇∪I₈, which gives the exact scanning beams used in the example. This illustrates the one-to-one correspondence.

For any given

, there exists a pair (

,

) which can be used to construct the scanning beam set

. As a result, to find the optimal scanning beam set

*, the problem can be expressed as finding the optimal pair (

*,

*) that produces

*.

To find the optimal minimal characteristic loop

*, a d-unimodal codebook may first be generated. A parent-child hierarchy can be defined between C(b, d) and C(b−1, d), which can be used to generate codebooks of any length. For a C(b, d) codebook with characteristic loop

(b, d), the loop containing the prefix of length b−i of all the codewords in the loop is a characteristic loop that defines a parent codebook C(b−i, d) of order i. The parent codebook of order 1 is referred to herein as the parent codebook. Given a codebook, its corresponding parent codebook is unique. However, a parent codebook can generate different child codebooks. Given

(b, d), the corresponding C(b, d) is the union without repetition of the codewords in

(b, d).

To generate a feasible minimal characteristic loop

(b, d) for the codebook C(b, d), if b≤d, then

(b−1, d) is formed for C(b−1, d). Each element of

(b−1, d) is repeated three times in their positions to create

. Then, a unimodal binary loop with the same length as

is created and appended to

, by concatenating each of its elements to the last bit of the corresponding codeword in

. The consecutive repetitions may be removed to form the loop

(b, d).

If b>d, then after creating

(b−1, d) for the codebook C(b−1, d),

may be divided to cyclic subsets by grouping the elements with the same prefix of length b−d, while preserving the cyclic order. Then the same procedure as above may be applied to each subset to form

(b, d) by inverting the grouping procedure.

While creating the subsets, there may be cases that cause consecutive repetition of elements. For those cases, each of the consecutive repetitions may be treated as distinct elements, meaning that none should be removed.

Referring again to FIG. 3 , with

(4,3)=⊙ {1100,1000,1001,1000,1010,0010,0011,0111,0110,0100}, the minimal characteristic loop is

(3,3)=⊙ {110,100,101,001,011,010}, and the above construction can be used to produce

(4,3). The codewords may be grouped into subsets with the same prefix of length 1, so

₁=⊙ {110,100,101} and

₂=⊙{001,011,010}. Repeating each element in its place leads to

₁=⊙ {110,110,110,100,100,100,101,101,101} and

₂=⊙ {001,001,001,011,011,011,010,010,010}. Then the unimodal binary sets a_(p,1)={0,0,0,0,1,1,0,0,0} and a_(p,2)={0,1,1,1,0,0,0,0,0} may be appended to the codewords of the first and second subsets, respectively. After removing repetitions and inverting the grouping, the original

(4,3) is generated.

Assuming that the length of a unimodal binary loop is fixed, it can be identified by two positions, that of the first bit which is flipped (denoted by i_(ƒ)) and that of the bit whose next bit is flipped again (denoted by i_(l)). The case where the code is all ones or all zeroes is denoted by i_(ƒ)=i_(l)=∞.

Each appended binary loop

can at most increase the number of codewords in codebook C(b, d) and its corresponding minimal characteristic loop

(b, d) by two, given that there are at least two distinct codewords in the corresponding subset. Otherwise it can only increase the number of codewords in the codebook and its corresponding minimal characteristic loop by 1 and 2, respectively. Given values b>1 and d>1, the following construction can be used to create a maximum cardinality minimal characteristic loop and codebook.

Starting from i=1, the minimal characteristic loop

(1, d) is set to ⊙ {1,0}, and the codebook C(1, d) is set to {1,0}. The value of i is incremented until i=b. For d=1, the subsets for each i are formed. Then, a unimodal binary loop is appended, in which i_(ƒ)=i_(l) with mod(i_(ƒ), 3)=2 to each subset. For d>1, when i≤d, there exists only one subset for which use a unimodal binary loop with i_(ƒ) and i_(l) falling on different codewords. For i>d, the minimal characteristic loop

(i−1, d) groups the codewords into subsets with the same prefix of length i−d. Then, for each subset, a unimodal binary loop may be formed with i_(ƒ) and i_(l) being selected as follows. Any codewords having a unique prefix of length i−d+1 are found, and i_(ƒ) and i_(l) are set to fall on the second repetition of these codewords. Otherwise, they are set to fall on second repetitions of any arbitrary codeword.

In the following, M(b, d) may denote the maximum cardinality for C(b, d) which is a d-unimodal binary code of length b, and N(b, d) may denote the maximum length for the minimal characteristic loop

(b, d). When d=1: M(b,1)=2^(b) ,N(b,1)=2^(b+1)−2 When d≥2:

$\begin{matrix} {{M\left( {b,d} \right)} = {N\left( {b,d} \right)}} \\ {= \left\{ \begin{matrix} {{M\left( {{b - 1},d} \right)} + {2{M\left( {{b - d},d} \right)}}} & {{b > d},} \\ {2b} & {b \leq d} \end{matrix} \right.} \end{matrix}$

Referring again to FIG. 2 , a previous example showed that

(3,3)=⊙ {110,100,001,011,010}. This is already a maximum cardinality minimal characterization loop for b=3 and d=3. The above procedure may be used to obtain a maximum cardinality minimal characterization loop

*(4,3) and codebook C*(4,3). Similar to the example above, the codewords may be grouped into subsets with the same prefix of length 1, and each element may be repeated in place three times. This provides

₁=⊙ {110,110,110,100,100,100,101,101,101} and

₂=⊙ {001,001,001,011,011,011,010,010,010}. The unimodal binary sets

₁=⊙ {0,0,0,0,1,1,1,0,0} and

₂=⊙ {0,1,1,1,0,0,0,0,0} satisfy the conditions for constructing a maximum cardinality codebook. By appending

₁ and

₂ to the codewords of the first and second subset, respectively, removing repetitions and inverting the grouping procedure, the outcome is

*(4,3)=⊙ {110,1000,1001,1011,1010,0010,0011,0111,0110,0100}. This minimal characterization loop has the same length of the original minimal characterization loop, but has a new codeword 1011, which was not present in the original.

The maximum cardinality minimal characterization loop for d>1 does not have any repetitions. This can be used to show that the optimal data transmission beams are contiguous for d>1. To find an optimal solution

* set to the problem of

{ i * } i ∈ [ b ] = S * = ⁢ ⁢ U _ ( it is sufficient to use a max cardinality minimal characteristic loop

of d-unimodal cookbooks to design

*.

As a result, there exists a set of contiguous data transmission beams for d>1 that provide optimal performance. By using contiguous scanning beams, the optimal data transmission beams are also contiguous. Using these results, an upper bound and lower bound on the minimum expected bandwidth for data transmission can be determined. The optimal value of the objective function Ū* in the optimization problem, when contiguous scanning beams are used, is bounded as:

$\frac{2^{h{(\Psi)}}}{M\left( {b,d} \right)} \leq {\overset{\_}{U}}^{*} \leq \frac{{supp}(\Psi)}{M\left( {b,d} \right)}$

The search for an optimal solution may thus be broken into two steps. First, based on d and b, a maximum cardinality minimal characteristic loop

* may be constructed. Next, a set of contiguous angular intervals

* may be determined, which, after combination with

*, form scanning beam set

*.

To find the set of contiguous angular intervals

={I_(j)}_(j=1) ^(N(b,d)), where I_(j)=(x_(k), x_(j)+1], the set of data transmission beams

={u_(k)}_(k=1) ^(M(b,d)). The Angular interval of U_(k) is equal to the union of the angular intervals in

having a corresponding codeword in

that is the k^(th) codeword in C. The optimal x_(j), j∈[N(b, d)], may be determined by rewriting the optimization as:

$\underset{x_{j},{j \in {\lbrack{N{({b,d})}}\rbrack}}}{argmin}{\sum\limits_{i = 1}^{M{({b,d})}}{\left( {\sum\limits_{{\{ j\}}_{\{{I_{j} \in U_{i}}\}}}^{\;}\left( {x_{j + 1} - x_{j}} \right)} \right){\int_{u_{i}}{{f_{\Psi}(x)}{dx}}}}}$ For d>1, as each u_(k) is contiguous, the optimization reduces to:

$\underset{x_{j},{j \in {\lbrack{M{({b,d})}}\rbrack}}}{argmin}{\sum\limits_{j = 1}^{M{({b,d})}}{\left( {x_{j + 1} - x_{j}} \right){\int_{x_{j}}^{x_{j + 1}}{{f_{\Psi}(x)}{dx}}}}}$

An optimal set of scanning beams can be generated with a max cardinality codebook and an optimal angular interval set. Although the optimal data transmission beams for the case of d=1 are not contiguous in general, one can always find an optimal set of scanning beams that correspond to contiguous transmission beams, when the prior is uniform with an arbitrary support. Moreover, if the contiguity of the data beams is enforced for the case of d=1, and if M(b, 2)=2{circumflex over ( )}b, then d=2 is the same as d=2. The optimal performance for the case of d=1 with the constraint of contiguous data beams is the same as optimal performance for the case of d=2, with the difference that the beam alignment duration is one time slot shorter.

In an alternate formulation, s_(i) may denote a scanning beam and a_(i)∈{0,1} may denote the feedback received for the i^(th) beam alignment packet. Since there are multiple choices for s_(i) based on the feedback received prior to the i^(th) time slot, to model the set of scanning beams, a hierarchical beam set S={S_(i)}_(i∈[b]) may be used, where

_(i) denotes the set of all possible scanning beams for the i^(th) beam alignment packet. By the i^(th) time slot, the base station 102 will have received the feedback sequence corresponding to the beams s_(j), for j≤i−d. The set

_(i) may include a beam for each possible feedback sequence {a_(j)}_(j≤i−d), which may be used to transmit the i^(th) beam alignment packet upon reception of the feedback sequence. Thus s_(i) and a_(i) are fully determined, given

and ψ, so the pair (

, ψ) may be used instead of (s₁, a_(t)).

The problem of minimizing the expected width of the uncertainty region for the angle of departure may be represented as

 * = ⁢ ⁢ 𝔼 Ψ ⁡ [  beam ⁡ ( , Ψ )  ] , where the expectation is taken over the distribution ƒ_(Ψ)(ψ).

The set of possible uncertainty regions may be expressed as

={u_(k)}_(k∈[K]), which may be defined as the range of the function beam(

, Ψ), where K is the number of possible uncertainty regions less than or equal to 2^(b). Then u_(k)=beam(

, Ψ) for ψ∈u_(k). Hence, the objective may be written as:

${\overset{¯}{U}{()}}:={{{\mathbb{E}}_{\Psi}\left\lbrack {{{beam}\left( {,\ \Psi} \right)}} \right\rbrack} = {\sum\limits_{k = 1}^{K}{{u_{k}}{\int_{\psi \in u_{k}}{{f_{\Psi}(\psi)}d\psi}}}}}$ The notation |u_(k)| is the Lebesgue measure of u_(k), which corresponds to the total width of the intervals in cases where u_(k) is the union of a finite number of intervals.

The scanning beams in

partition the interval (0,2π| into a set of contiguous intervals called component beams. The component beams may be derived by sorting the endpoints of the scanning beams in

, at which point each interval between two consecutive endpoints is a component beam. Since the component beams are contiguous, their positions on the circle can be used to form a loop

of component beams, being a cyclically ordered set of elements.

When the channel of a receiver station 104 has a single dominant path, such that there is zero or negligible multipath, the angular uncertainty region of the angle of departure, based on a received feedback sequence s is given by: B(s)=∩_(i=1) ^(b)Θ_(i)(s) where Θ_(i)(s)=Φ_(i) if a positive acknowledgement is received for the scanning beam i, and Θ_(i)(s)=

−Φ_(i) otherwise. The feedback sequence may be defined as a binary sequence s=(s₁, s₂, . . . , s_(b)), corresponding to the b probing packets, where the i^(th) position has a value of zero or one, corresponding to negative acknowledgement and positive acknowledgement feedback, respectively. The domain

may be as large as [0,2π). The set {Θ_(i) (s)}_(i=1) ^(b) may be determined based on the feedback sequence s.

This formulation uses the fact that, when there is only one path, then there is a single angle of departure associated with the receiver station 104, the presence of a positive acknowledgement for the beam Φ_(i) means that B(s)∈Φ_(i), and a negative acknowledgement means that B(s)∈(0,2π]−Φ_(i).

The scanning beam policy may choose scanning beams for b>d based on the uncertainty region given by B(s), which, in turn, is a function of the received feedback sequence. The data transmission beam policy may also use the same computed B(s) after reception of the last feedback bit, and may choose a beam which exactly covers the uncertainty region. The notation

indicates a combined policy, including both scanning beam and data transmission beam policies. For a data transmission beam policy that covers the uncertainty region B(s), assuming that the user channel has only one path, it can be shown that u_(k)s partitions the search domain

, such that u_(k)∩u_(k′)=Ø, ∀k, k′ and ∪_(k=1) ^(M) u_(k)=

.

Given the set of data transmission beams,

={u_(k)}_(k=1) ^(M), the expected width of the calculated uncertainty region of a receiver station 104 may be based on policy

as:

${\overset{\_}{U}(\mathcal{B})} = {{{\mathbb{E}}\left\lbrack {{B(s)}} \right\rbrack} = {\sum\limits_{k = 1}^{M}{{u_{k}}{\int_{\varphi \in u_{k}}{{f_{\Psi_{j}}(\varphi)}d\;\varphi}}}}}$ where u_(k)=B(s) for ψ∈u_(k), and where the expectation is taken over the feedback sequence s, which is a function of the angle of departure. The term |u_(k)| is the Lebesgue measure of u_(k), which corresponds to the total width of the intervals in the case where u_(k) is the union of a finite number of intervals. The dependence of Ū on

={Φ_(i)}_(i=1) ^(b) comes from the expectation, which is a function of the set of data transmission beams created by

.

A set of b scanning beams

may be designed to minimize the weighted average of the expected width of uncertainty ranges for the receiving station(s) 104. This goal may be expressed as the following optimization problem:

$\mathcal{B} = {\underset{{\{\Phi_{i}\}}_{i = 1}^{b}}{argmin}\mspace{11mu}{\overset{\_}{U}\left( {{\left\{ \Phi_{i} \right\} b_{i}} = 1} \right)}}$ The term Ū* may be defined as the optimal objective value in this optimization problem. The optimal scanning beams are the ones that can generate an optimal partition {u_(k)*}_(k=1) ^(M), such that:

$\left\{ u_{k}^{*} \right\} M_{k = 1}\underset{u_{k},{k \in {\lbrack M\rbrack}}}{argmin}{\underset{k = 1}{\overset{M}{\;\sum}}{{u_{k}}{{\mathbb{P}}\left( {\Psi \in u_{k}} \right)}}}$ Such that |u_(k)|≥0.

A data transmission beam policy may be used to assign a data transmission beam to a received feedback sequence s. For example, the calculated uncertainty region based on a scanning beam policy for a virtual index b+1, which would otherwise be outside the bound for selecting an actual scanning beam, may be used to define a data transmission beam policy. The data transmission beam policy simply calculates the remaining uncertainty region after the reception of the entire feedback sequence s.

Thus, a set of scanning beams, a scanning beam policy, and a data transmission beam policy are determined to minimize the expected beam width of the transmitted data transmission beam. Such minimization considers the scanning interval and the prior knowledge, for example the distribution, of the receiving station's angle of departure. A feedback sequence may be regarded as valid if, and only if, there is a possible path realization which leads to such a feedback sequence. The number of valid sequences may therefore be less than the 2^(b) maximum number of feedback sequences for a sequence of size b.

An interactive beam alignment problem, with distribution function ƒ(·) for the angle of departure, having b scanning beams, a feedback delay d, and a policy

for scanning beams and data transmission beams is expressed as IBA(ƒ, b, d,

). As noted above, a loop is an ordered sequence of elements around a closed trajectory, without having an absolute location, but respecting relative location and direction in the loop. A loop of size n includes n elements, represented as a_(i), with i=1, . . . , n, such that a_(i) immediately precedes a_(i+1) for 1≤i≤n−1, and a_(n) immediately precedes a₀. Similarly, the element a_(i+1) immediately succeeds a_(i) for 1≤i≤n−1, and a₀ immediately succeeds a_(n). A circular shift of the elements does not affect the loop.

For non-contiguous beams, by using a simple scanning beam policy that picks a different scanning beam in each time slot, 2^(b) data transmission beams may be generated for each possible feedback sequence. It is also possible to generate 2^(b)−1 data transmission beams for all feedback sequences other than the all-zero feedback sequence. The solution of such non-contiguous scanning beams may be found as described in greater detail below.

When practical constraints involve the use of contiguous beams for the scanning beams, it can be noted that each scanning beam Φ_(i) that is contiguous can be represented by an angular interval [ϕ_(2i−1), ϕ_(2i)). A scanning beam policy selects a beam at each time slot in the scanning interval. The term Φ(k) m ay indicate the selected scanning beam from

for the time slot k, using a scanning beam policy for a particular realization of the receiver station 104. The term Φ(k) is a function of the scanning beam policy, and the policy itself is omitted from the notation for simplicity.

For a scanning interval of size b, and non-randomized scanning beam and data transmission beam policies, denoted by the combined policy term

, the term

(

, b) denotes the set of all data transmission beams that can be chosen by

for all valid feedback sequences of size b, and

(

, b) denotes the set of all scanning beams that can be chosen by

for all valid feedback sequences of any size, including partial feedback sequences available within the scanning intervals.

For n=|

(

, b)| contiguous scanning beams, the beams Φ_(i), with i=1, . . . , n, represented by the beam interval [ϕ_(2i−1), ϕ_(2i)), have at most 2n beginning and end points. These points may be represented by a loop ⊙_(L)[l₁, . . . , l_(n)]. This loop generates 2n angular intervals, counting the interval ith a possible length of zero, denoted by a loop ⊙_(l)[I(l₁, l₂), I(l₃, l₃), . . . , I(l_(n), l₁)], where I(l_(i), l_(j)) denotes an interval from the angle l_(i) to the angle l_(j) in a counterclockwise direction. Inclusion or exclusion of a singular point, such as the end point of an interval, does not affect the problem.

There is a feedback sequence s_(i) associated with each interval v_(i). In particular, for any valid feedback sequence s, there is at least an interval v where the angle of departure lies within the interval. However, there might be more than one interval that corresponds to the same feedback sequence. For example, consider two beams with intervals I(ϕ₁, ϕ₂) and I(ϕ₃, ϕ₄), where ϕ₁<ϕ₃<ϕ₄<ϕ₂. The feedback sequence 11 or 00 corresponds to a single interval [ϕ₃, ϕ₄] or [ϕ₁, ϕ₂], respectively. However, the feedback sequence 10 corresponds to two disjoint intervals, [ϕ₁, ϕ₃] and [ϕ₄, ϕ₂], and the feedback sequence 01 may be invalid.

An optimal solution to IBA(ƒ, b, d,

) may be obtained for a maximum rate code with the same parameters. As a result, IBA(ƒ, b, d,

) may break into two problems, one to find the code with the maximum rate, and another to design the scanning beam and data transmission beam codebooks. By using the results of the code design problem, the optimal number of partitions may be determined for the IBA(ƒ, b, d,

) problem. This number may be used to design the optimal partitioning of the search space or angular uncertainty region, which directly results in the data transmission beam codebook. Based on the results from the code design problem, each entry of the scanning beam codebook may also be defined as a particular union of some of such partitions, where the indices of the partitions are defined based on the optimal codes. The scanning beam and data transmission beam policies may be derived directly based on the code design.

As noted above, a binary loop may be a loop with binary elements, and may be called unimodal if there is only one position where the value of an element in that position is less than or greater than the value of the immediately preceding element. A binary code of length n may be called d-unimodal, denoted by

(b, d), if there exists a characteristic loop that includes all codewords in a particular circular order, and if the binary loop of the elements in the l^(th) position (for l>d) of the codewords is unimodal, for any subset of the codes in the loop with the same prefix of length l−d. The code size is the number of codewords of

(b, d), expressed as |

(b, d)|. The code rate may be defined as ½ log 2|

(b, d)|.

The characteristic loop may include repetition of the same element. Thus, a minimal characteristic loop may be one which does not include any consecutive repetition. However, a minimal characteristic loop may include non-consecutive repetitions. For example, if

(b, d)={11,01,10}, a characteristic loop may be 11,01,11,10. For the code

(b, d), having a maximum code size or maximum code rate, there exists a characteristic loop which has the same number of codewords as the codebook, such that it includes each element of the code exactly once in a particular position in the loop. Thus, any minimal characteristic loop of a

(b, d) code has the length |

(b, d)|. The characteristic loop for a code may not be unique, but, for any d-unimodal code

(b, d), there exists a minimal characteristic loop with length |

(b, d)| that is the size of the code. As a result, the minimal characteristic loop includes every element of the code in only one position of the characteristic loop.

For any code with a characteristic loop ⊙_(W), a loop that includes a prefix of length b−i of all the codewords in the loop is a characteristic loop that defines a parent code of order i. Thus,

(b−i, d). The parent code of order 1 is referred to herein as the parent code. This uses the fact that selecting a subset of code by choosing an arbitrary prefix of all the codewords results in a new characteristic loop. The parent of a code may be unique. However, there may be different codes that have the same parent.

A child node

(b, d) with a minimal characteristic loop ⊙_(V), for a

(b−1, d) code with a minimal characteristic loop ⊙_(W)[W₁, . . . , W_(n)] may be generated by appending a 0 or 1 bit to the codewords of

(b−1, d). If b≤d, two different elements w_(i) and w_(j) may be selected from ⊙_(W) and both 0 and 1 are may be appended to them. For the elements w_(k), i<k<j (if j exists), an indicator bit (e.g., 1) may be appended, and for any other elements (if they exist), a zero may be appended. The minimal characteristic loop ⊙_(v) may be composed of these elements, such that they are circularly ordered based on the order of their prefix of length b−1, as in ⊙_(W), and the last bit may be based on the ordering of the bit 0 and 1.

For b>d, the same procedure may be performed as for b≤d, for every set of codewords of

(b−1, d) which have the same prefix of size b−d. For d>1, two different elements may be selected, such that their bits b−d+1 differ, if they exist. Selecting prefixes with different b−d+1 bits helps in the case that there is only one codeword in the subset for which the bit b−d+1 is different from the other codewords in the set. Otherwise, any two different codewords can be selected without the condition that the bit b−d+1 is different between them.

The concept of the parent code and child code can be used to show that the maximum code size of a d-unimodal binary code of length b, for d>1, may be given by R_(d)(b), characterized by the following recursive equation: R _(d)(b)=R _(d)(b−1)+2R _(d)(b−d),b>d R _(d)(b)=2b,b≤d

The minimal characteristic loop may contain exactly R_(d)(b) different codewords. For d=1, the maximum code rate may be given by R_(d)(b)=2^(b).

The construction of child codes from a parent code may result in different child codes. However, any maximum rate code may be constructed based on recursive addition of the child code.

The explicit solution to the maximum size of the

(b, d) code, based on the above recurrence formula, may be obtained as follows. A term w_(i) may be defined as w_(i)=[w_(id+1), w_(id+2), w_(id+d)]. The recurrence formula is equivalent to w_(i)=Vw_(i−1), i>0, where V=2T₁+T₂. The term T₁ represents a lower triangular matrix of all ones in non-zero places, and the term T₂ represents a matrix that has 1 for all elements in all positions in the column d, with the rest of the elements being zero. The initial condition is given by w₀, which may be a column vector [2, 3, . . . , 2d]. Hence, w_(i)=V^(i)w₀. The maximum size of any code of length b can be determined directly, without computing the maximum rate of all codes up to b when using the recursion.

For the d-unimodal code

(b, d), the code rate

${r_{d}(b)} = {\frac{1}{n}\log\mspace{11mu} 2\left( {R_{d}(b)} \right)}$ can be found based on R_(d)(b) that is the maximum size of the codebook with b-bit codewords. This code rate indicates the growth rate of the resolution of the data transmission beam set, since the number of possible data transmission beams is equal to the size of the codebook. The asymptotic behavior of the code rate for large values of n may be determined as follows. The solution to the homogeneous recursion formula may be determined directly.

For any b, it can be verified that, beside the constant root −1, there is only one more real root, that varies based on the b, for the characteristic function of the recursion and the norm of all other complex roots is smaller than the norm of the non-constant root.

The non-constant and real root of the characteristic polynomial of the recurrence equation for d=2, 3, . . . , 7 is approximately given by 2, 1.6956, 1.5437, 1.4511, 1.3881, 1.4322, which translates to rates of 1, 0.7618, 0.6264, 0.5371, 0.4731, 0.4246, respectively. This means that, for d=2, there is no loss in the coding rate and the rate is equal to the case of d=1, which means that there is no delay in the feedback, and the feedback for all the past scanning beams is received before the transmission of the current scanning beam.

The rate drops sharply for lager values of d. With only d=6, the rate drops below 50% of what can be achieved with no delay. As the delay becomes larger, as the number of beams b grows large, the coding rate drops to zero, which can be seen from the fact that the code size grows as 2b, which grows much more slowly than 2^(b).

For IBA(ƒ, b, d,

), there exists a set of scanning beams

, as well as scanning beam and data transmission beam policies denoted by

, that can generate a loop of angular interval ⊙_(I) if and only if there exists a d-unimodal binary code of length |⊙_(I)|. For the optimal solution for IBA(ƒ, b, d,

), the number of the generated angular interval is maximum. There is a one-to-one correspondence between the existence of IBA(ƒ, b, d,

) and a code

(b, d). In addition, for the optimal IBA(ƒ, b, d,

), the corresponding code

(b, d) has a maximum rate. By using contiguous scanning beams, the data transmission beams may also be contiguous. Thus, extra constraints are not needed to make the data transmission beams contiguous. For an optimal IBA(ƒ, b, d,

) with contiguous scanning beams, the data transmission beam corresponding to the uncertainty region is contiguous.

The process for finding an optimal solution may be broken into two steps. First, based on b and d, a maximum rate d-unimodal binary code may be designed. This code may be used to find the maximum number of the angular interval possible by using contiguous beams in b beam scans, with feedback delay of d time slots. Next, the threshold values of the beginning and the end of the angular intervals may be designed. The code and its associated order in its characteristic loop will imply the scanning beam and data transmission beam policies as well. A property of the optimal

(b, d) code is that any parent of the code is also optimal. The truncated scanning beam policy for any b′≤b for the optimal IBA(ƒ, b, d,

) is the optimal policy for IBA(ƒ, b′, d,

) as well.

If the optimal IBA(ƒ, b, d,

) is designed to be used in a system with a scanning interval of b, but stops scanning in a time slot b′<b, then the corresponding data transmission beam that is based on the scanning beams is still optimal, even if the value of b′ is known beforehand. The system can use extra scanning beams to further refine the data transmission beam that is found after b scans, such that the extended scans are still optimal. In other words, the scanning beam policy is optimal at each step. One can design a scanning policy for common distributions beforehand and use it in real-time in a dynamic fashion, based on the distributions and a predetermined value of b in each frame.

To design IBA(ƒ, b, d,

), a d-unimodal code

(b, d) may be designed by starting from

(1, d) using 0 and 1. The code

(i, d) may then be recursively determined as a child of

(i−1, d) for i=2, . . . , b. The process of finding a child of a code is not unique, and different child codes may be generated. Any maximum rate code may be generated.

The set of data transmission beams, or an optimal partition, may be determined. Because each u_(k) may be contiguous,

may include M contiguous intervals u_(i)*=(x_(i)*, x_(i+1)*] that are defined only based on the boundary points x_(i)*, i∈[M] in a loop, with x_(M+1)*=x₁*. This simplifies the search for the optimal partition {u_(k)*}_(k=1) ^(M) to finding the boundary values x_(i)*, i∈[M] which are solutions to the following optimization:

$\underset{x_{i},{i \in {\lbrack M\rbrack}}}{argmin}{\underset{i = 1}{\overset{M}{\mspace{11mu}\sum}}{\left( {x_{i + 1} - x_{i}} \right){\int_{x_{i}}^{x_{i + 1}}{{f_{\Psi}(x)}{dx}}}}}$

The codewords may be assigned in a characteristic loop of the code

(b, d) to corresponding positions in the loop of the intervals (x_(i)*, x_(i+1)*]. It does not matter how the one-to-one correspondence between these two loops is defined in terms of a single element, but the relative order and direction in the loop should be preserved. The codes corresponding to each interval are the corresponding feedback sequence that leads to the selection of each interval. Hence, for each valid feedback sequence, there would be a corresponding interval. This relation may be used to determine a data transmission beam policy.

The scanning beam may also be determined by looking at the prefix of the codes associated with each interval. For a time slot i<d, the scanning beam corresponds to the union of all elements for which the corresponding bit i is equal to an indicator bit, such as 1. For time slots i≥d, the subset of codes with the prefix of length i−d may be identified that are equal to the received feedback sequence. The corresponding beam for the time slot i may then be the union of all intervals that have this bit equal to the indicator bit. In either case, the union of the partitions may result in a contiguous beam. The indicator bit used may be the same as the indicator bit defined in the generation of a child code. The union of the codes with their i^(th) bit set to the indicator bit defines a single contiguous beam for each subset of the beam with the same preamble of size i−d. The actual value of the indicator bit, whether 0 or 1, is irrelevant, and either fixed value may be selected as the indicator bit.

Referring now to FIG. 4 , a method 400 for selecting data transmission beams is shown. As described in greater detail above, block 402 designs a set of probing beams. For example, these probing beams may represent a set of possible directions in which a base station 102 may transmit using phased array antenna system 101. Block 404 selects a first beam from the set, and block 406 sends a probing packet using the selected beam.

Block 408 determines whether feedback is expected. For example, assuming an expected feedback delay of d, feedback will not be received until at least the d^(th) time interval, as shown in FIG. 2 . If feedback is not expected yet, then block 410 determines whether more probing packets are to be sent. This reflects a scenario where all probing packets can be transmitted before the first feedback is received (e.g., b<d). If there are no more probing packets to send, block 413 waits until all pending feedback is received, and a data transmission beam is determined on the basis of the feedback at block 416. If there are more probing packets to send, then block 411 selects a next beam from the set, without the benefit of feedback, and a new probing packet is transmitted at block 406.

If block 408 determines that feedback is expected at this point, for example at times after the delay d, then block 412 determines whether there are more probing packets to send. If not, then block 416 determines the data transmission beam on the basis of the feedback. If there are more probing packets to send, then block 414 selects a next beam from the set, using the feedback to help make the determination. Block 406 then sends a probing packet using the selected beam.

As described in detail above, the “feedback” may be a received acknowledgement or negative acknowledgement packet that is transmitted by the receiving station 104 in response to a probing packet. The feedback may also include a determination that no acknowledgement was received during the expected delay period. In this event, the lack of acknowledgement may be treated as a negative acknowledgement, for the purposes of selecting a next beam and for determining the data transmission beam.

Referring now to FIG. 5 , a method of transmitting data from a base station 102 to a receiver station 104 is shown. Block 400 selects a data transmission beam, for example according to one of the processes described above. It should be noted that any number of such beams may be calculated, to transmit to any number of respective receiving stations.

Block 502 then configures the phased array antenna 101 according to the selected data transmission pattern. This configuration may include, for example, setting a phase shift and amplitude for each of a set of radio front ends that make up the phased array antenna 101, such that transmissions from the various radio front ends interfere constructively and destructively to create a focused beam of transmitted energy that is directed to the receiver station 104.

Block 504 transmits data from the base station 102 to the receiver station 104. This transmission may occur for T−b−d time intervals, as shown in FIG. 2 , representing the remaining time of the coherence interval 202 after performing beam alignment. At the end of the coherence interval 202, processing may return to block 400, so that a new transmission beam may be selected.

Embodiments described herein may be entirely hardware, entirely software or including both hardware and software elements. In a preferred embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.

Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.

Each computer program may be tangibly stored in a machine-readable storage media or device (e.g., program memory or magnetic disk) readable by a general or special purpose programmable computer, for configuring and controlling operation of a computer when the storage media or device is read by the computer to perform the procedures described herein. The inventive system may also be considered to be embodied in a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.

A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.

As employed herein, the term “hardware processor subsystem” or “hardware processor” can refer to a processor, memory, software or combinations thereof that cooperate to perform one or more specific tasks. In useful embodiments, the hardware processor subsystem can include one or more data processing elements (e.g., logic circuits, processing circuits, instruction execution devices, etc.). The one or more data processing elements can be included in a central processing unit, a graphics processing unit, and/or a separate processor- or computing element-based controller (e.g., logic gates, etc.). The hardware processor subsystem can include one or more on-board memories (e.g., caches, dedicated memory arrays, read only memory, etc.). In some embodiments, the hardware processor subsystem can include one or more memories that can be on or off board or that can be dedicated for use by the hardware processor subsystem (e.g., ROM, RAM, basic input/output system (BIOS), etc.).

In some embodiments, the hardware processor subsystem can include and execute one or more software elements. The one or more software elements can include an operating system and/or one or more applications and/or specific code to achieve a specified result.

In other embodiments, the hardware processor subsystem can include dedicated, specialized circuitry that performs one or more electronic processing functions to achieve a specified result. Such circuitry can include one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or programmable logic arrays (PLAs).

These and other variations of a hardware processor subsystem are also contemplated in accordance with embodiments of the present invention.

Referring now to FIG. 6 , additional detail on the base station 102 is shown. The base station 102 includes a hardware processor 602 and a memory 604. The base station 102 may include several functional modules, each of which may be implemented as software that is stored in the memory 604 and that is executed by the hardware processor, to perform its respective function. One or more of the functional modules may alternatively be implemented as discrete hardware components, such as with ASICs or FPGAs.

A phased array antenna 101 is used by the base station 102 to communicate with the receiver station 104. Beam alignment 608 uses scanning beam selection 606 to select a sequence of scanning beams, for use by the phased array antenna 101, to transmit probing packets during a beam alignment portion of a coherence interval 202. This beam alignment 608 may make use of feedback received by the phased array antenna 101 to guide further scanning beam selection 606, as such feedback is received following a delay interval.

Once the beam alignment 608 is complete, data transmission beam selection 610 is performed, using any feedback that was received from the probing packets. The selected data transmission beam is used to configure the phased array antenna 101 during data transmission 612. Data transmission 612 may continue for a remainder of the coherence interval 202. At the end of the coherence interval 202, beam alignment 608 may be performed again to account for any changes in relative position between the base station 102 and the receiver station 104.

Reference in the specification to “one embodiment” or “an embodiment” of the present invention, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment. However, it is to be appreciated that features of one or more embodiments can be combined given the teachings of the present invention provided herein.

It is to be appreciated that the use of any of the following “/”, “and/or”, and “at least one of”, for example, in the cases of “A/B”, “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended for as many items listed.

The foregoing is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the present invention and that those skilled in the art may implement various modifications without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims. 

What is claimed is:
 1. A method for transmitting data, the method comprising: sending a first probing packet using a first scanning beam, selected from a set of scanning beams; determining feedback about the first probing packet; sending a second probing packet using a second scanning beam, selected from the set of scanning beams based on the determined feedback about the first probing packet; determining feedback about the second probing packet, wherein the feedback about the first probing packet and the feedback about the second probing packet is received after a delay, characterized by a delay parameter; determining a data transmission beam based on the set of scanning beams and the determined feedback about the first probing packet and the second probing packet; and transmitting data using an antenna that is configured according to the determined transmission beam.
 2. The method of claim 1, wherein each of the scanning beams in the set of scanning beams includes an angular coverage interval that corresponds to a respective single contiguous main lobe from a set of contiguous main lobes.
 3. The method of claim 1, wherein the data transmission beam has an angular coverage that includes an intersection of angular coverage intervals of scanning beams with positive feedback and a complement of angular coverage intervals of scanning, beams with negative feedback.
 4. The method of claim 1, wherein the feedback about the first probing packet and the feedback about the second probing packet includes a particular time interval and feedback packet information.
 5. The method of claim 1, wherein the data transmission beam is a composite beam that covers a plurality of disjoint angular intervals.
 6. The method of claim 5, wherein transmitting data includes transmitting with a radiation pattern that includes a lower transmitted power at angles outside the disjoint angular intervals than transmitted power within the disjoint angular intervals.
 7. The method of claim I, wherein the set of scanning beams is configured to minimize a measure of size of a coverage interval of the data transmission beam.
 8. The method of claim 7, wherein the set of scanning beams is configured based on prior knowledge about a communication channel between the antenna and a receiving station.
 9. The method of claim 8, wherein the scanning beams are configured to track changes in the communication channel.
 10. The method of claim 1, wherein the feedback about the first probing packet and the feedback about the second probing packet includes attributes of a channel between the antenna and a receiving station,.
 11. The method of claim 1, wherein the scanning beams are configured based on the delay parameter and a hierarchy, wherein a dedicated subset of the scanning beams in the hierarchy is used in selecting the scanning beams for a time slot.
 12. The method of claim 11, wherein the hierarchy partitions the scanning beams into subsets, such that there is a dedicated subset for each time slot up to the delay parameter, and wherein there is a dedicated subset for each sequence of feedback for time slots after the delay parameter.
 13. The method of claim 12, wherein the subsets of scanning beams for time slots less than the delay parameter each consist of a single beam.
 14. The method of claim 13, wherein the data transmission beam includes an average coverage interval that corresponds to a single contiguous main lobe.
 15. The method of claim 1, wherein deteiuiining feedback about the first probing packet and the second probing packet includes determining whether feedback has been received after a delay interval, setting a first bit responsive to a determination that a positive acknowledgement is received, and setting a second bit responsive to a determination that no acknowledgement is received.
 16. A method tier transmitting data, the method comprising: sending a plurality of probing packets using respective f_(i)rst scanning beams, selected from a set of scanning beams; determining feedback about a first probing packet of the plurality of probing packets after a non-zero delay interval has passed; sending a second probing packet using a second scanning beam, selected from the set of scanning beams based on the determined feedback about the first probing packet; determining feedback about the second probing packet and a remainder of the plurality of probing packets; determining a data transmission beam based on the set of scanning beams and the determined feedback about the first probing packet, the second probing packet, and the remainder of the plurality of probing packets; configuring a phased array antenna according to the data transmission beam; and transmitting data using the configured phased array antenna.
 17. The method of claim 16, wherein determining feedback about the first probing packet and the second probing packet includes determining whether feedback has been received after the delay interval, setting a first bit responsive to a determination that a positive acknowledgement is received, and setting a second bit responsive to a determination that no acknowledgement is received.
 18. The method of claim 16, wherein the set of scanning beams is configured based on prior knowledge about a communication channel between the antenna and a receiving station.
 19. A method for transmitting data, the method comprising: sending a plurality of probing packets using respective first scanning beams, selected from a set of scanning beams; determining feedback about a first probing packet of the plurality of probing packets after a non-zero delay interval has passed by determining whether feedback has been received after the delay interval, setting a first bit responsive to a determination that a positive acknowledgement is received, and setting a second bit responsive to a determination that no acknowledgement is received; sending a second probing packet using a second scanning beam, selected from the set of scanning beams based on the determined feedback about the first probing packet; determining feedback about the second probing packet and a remainder of the plurality of probing packets; determining a data transmission beam based on the set of scanning beams and the determined feedback about the first probing packet, the second probing packet. and the remainder of the plurality of probing packets; configuring a phased array antenna according to the data transmission beam, wherein the set of scanning beams is configured based on prior knowledge about a communication channel between the phased array antenna and a receiving station; and transmitting data using the configured phased array antenna. 